f2d806
@@ -111,6 +111,14 @@
public class RestletProducer extends DefaultProducer {
             matcher.reset(uri);
         }
 
+        String query = exchange.getIn().getHeader(Exchange.HTTP_QUERY, String.class);
+        if (query != null) {
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("Adding query: " + query + " to uri: " + uri);
+            }
+            uri = addQueryToUri(uri, query);
+        }
+        
         if (LOG.isDebugEnabled()) {
             LOG.debug("Using uri: " + uri);
         }
@@ -118,6 +126,33 @@
public class RestletProducer extends DefaultProducer {
         return uri;
     }
 
+
+    protected static String addQueryToUri(String uri, String query) {
+        if (uri == null || uri.length() == 0) {
+            return uri;
+        }
+
+        StringBuffer answer = new StringBuffer();
+
+        int index = uri.indexOf('?');
+        if (index < 0) {
+            answer.append(uri);
+            answer.append("?");
+            answer.append(query);
+        } else {
+            answer.append(uri.substring(0, index));
+            answer.append("?");            
+            answer.append(query);
+            String remaining = uri.substring(index + 1);
+            if (remaining.length() > 0) {
+                answer.append("&");
+                answer.append(remaining);
+            }
+        }
+        return answer.toString();
+        
+    }
+
     protected RestletOperationException populateRestletProducerException(Exchange exchange, Response response, int responseCode) {
         RestletOperationException exception;
         String uri = exchange.getFromEndpoint().getEndpointUri();
